module DataFaces

    ! (5,2,nFaces) -
    ! 1:5 = Velocities, Pressure, Density
    ! 1:2 = left/right, left = meshFaceOwner, right = meshFaceNeighbour

    real(8),allocatable :: CharsOld(:,:,:), CharsNew(:,:,:) ! Characteristics (5,2,nFaces)
!        Chars(1) = Q
!        Chars(2) = R
!        Chars(3) = S
!        Chars(4) = W1
!        Chars(5) = W2
    real(8),allocatable :: Acoef(:,:) ! (2,nFaces)
    real(8),allocatable :: AcoefCell(:)

    real(8),allocatable :: FaceVarsNew(:,:,:), FaceVarsOld(:,:,:) ! (5,2,nFaces):
                                           ! 1:5 = Rho, Velocities, Energy    
    real(8),allocatable :: fluxFaces(:,:,:) ! (5,2,nFaces)
    real(8),allocatable :: fluxFacesReserve(:,:,:) ! (5,2,nFaces)
    real(8),allocatable :: fluxCorrection(:,:,:) ! (5,2,nFaces)

    real(8),allocatable :: ViscousFluxes(:,:,:) ! (3,2,nFAces)

    logical,allocatable :: fluxesFacePresent(:,:) ! (2,nFaces)
    logical,allocatable :: CharsFacePresent(:,:) ! (2,iFace)

    real(8),allocatable :: PfaceNew(:,:) ! (2,nFaces)
    real(8),allocatable :: UfaceNew(:,:,:) ! (3,2,nFaces)
    real(8),allocatable :: EfaceNew(:,:) ! (2,nFaces)
    real(8),allocatable :: RhoFaceNew(:,:) ! (2,nFaces)

    real(8),allocatable :: Pface(:,:) ! (2,nFaces)
    real(8),allocatable :: Uface(:,:,:) ! (3,2,nFaces)
    real(8),allocatable :: Eface(:,:) ! (2,nFaces)
    real(8),allocatable :: RhoFace(:,:) ! (2,nFaces)


real(8),allocatable :: FluxConserv(:,:,:)

end module DataFaces
